package com.atguigu.springcloud.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 2 * @Author: madonghui
 * 3 * @Date: 2020/11/3 10:20
 * 4
 */
@Configuration
public class GatewayConfig {
    /**
     * 配置类配置路由
     * @param routeLocatorBuilder
     * @return
     */
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
        //相当于yml文件中的routes：
        /*RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();*/
        //相当于      routes:
        //        - id: payment_routh        #路由的id，没有固定规则但是要求唯一，建议配合微服务名称
        //          uri: http://localhost:8001 #匹配提供服务的路由地址
        //          predicates:
        //            - Path=/payment/getPaymentById/** #断言，路径相匹配的进行路由
/*        routes.route("path_route_atguigu",r -> r.path("guonei").uri("http://news.baidu.com/guonei")).build();
        return routes.build();*/
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();

        routes.route("path_route_atguigu",
                r -> r.path("/guonei")
                        .uri("http://news.baidu.com/guonei")).build();

        return routes.build();
    }

    @Bean
    public RouteLocator customRouteLocator2(RouteLocatorBuilder routeLocatorBuilder){
        //相当于yml文件中的routes：
        /*RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();*/
        //相当于      routes:
        //        - id: payment_routh        #路由的id，没有固定规则但是要求唯一，建议配合微服务名称
        //          uri: http://localhost:8001 #匹配提供服务的路由地址
        //          predicates:
        //            - Path=/payment/getPaymentById/** #断言，路径相匹配的进行路由
/*        routes.route("path_route_atguigu",r -> r.path("guonei").uri("http://news.baidu.com/guonei")).build();
        return routes.build();*/
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();

        routes.route("path_route_atguigu",
                r -> r.path("/guoji")
                        .uri("http://news.baidu.com/guoji")).build();

        return routes.build();
    }
}
